package com.project.service;

import com.project.bean.BuyBean;
import com.project.bean.BuyCarBean;

import java.util.List;

public interface IBuyCarService {
    /**
     * 添加采购车记录
     *
     * @param buyCarBean
     */
    void add(BuyCarBean buyCarBean);

    /**
     * 修改采购车信息
     * 输入：采购车id，采购价，采购数量
     * 处理：根据采购车id，修改采购价，采购数量，
     * 输出：ok
     * @param buyCarId 采购车id
     * @param newNum 新采购数量
     * @param newPrice 新采购价，动态条件
     */
    void updateById(Integer buyCarId,Integer newNum,Integer newPrice);

    /**
     *按用户ID，库存商品ID，查询采购车信息。(下列方法第三步)
     *
     * 添加采购商品
     * 输入：操作类型（add/update），库存商品对象，图片上传对象，采购数量
     * 处理：
     * 1、判断操作类型是否为add，如果为add，完成库存商品添加。
     * 2、从session中，取出登陆用户对象。
     * 3、按用户ID，库存商品ID，查询采购车信息。
     * 如果采购车信息为null，则添加采购车记录
     * 如果采购车信息不为null，则累加采购车商品数量
     * 输出：ok
     * @param userId
     * @param goodsId
     * @return
     */
    BuyCarBean findByUserGoods(Integer userId,Integer goodsId,Integer num);

    /**
     * 删除采购车商品
     * 输入：采购车id
     * 处理：根据采购车Id删除采购车信息
     * 输出：ok
     * @param buyCarId
     */
    void del(Integer buyCarId);

    /**
     * 根据登录用户id批量删除购物车信息
     * @param userId
     */
    void delMore(Integer userId);
    /**
     * 查看该用户采购车所有记录
     * 输入：无
     * 处理：1、从session中取出登陆用户
     * 2、根据登陆用户id，查询采购车信息。采购车信息中，需要包含采购商品名称和品牌
     * 输出：采购车集合
     * 采购车信息：采购车编号，采购价，采购数量，库存商品外键，商品名称，品牌
     * @param userId
     * @return
     */
    List<BuyCarBean> findByUserId(Integer userId);

}
